package com.party.core.dao.read.member;

import com.party.common.paging.DataParam;
import com.party.common.paging.Page;
import com.party.core.dao.read.BaseReadDao;
import com.party.core.model.member.MemberMerchantDetail;
import com.party.core.model.member.MemberMerchantDetailQuery;
import com.party.core.model.member.MemberMerchantDetailWithMember;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 商户统计详情数据写入
 * Created by wei.li.
 *
 * @date 2017/12/11 0011
 * @time 19:30
 */
@Repository
public interface MemberMerchantDetailReadDao extends BaseReadDao<MemberMerchantDetail> {

    /**
     * 统计
     * @param memberMerchantDetailQuery 统计参数
     * @return 统计列表
     */
    List<MemberMerchantDetailWithMember> sumList(@Param("detailQuery") MemberMerchantDetailQuery memberMerchantDetailQuery,
                                                 @Param("dataParam") DataParam dataParam, Page page);

    /**
     * 统计
     * @param memberMerchantDetailQuery 统计参数
     * @return 统计列表
     */
    List<MemberMerchantDetailWithMember> sumListWithChild(@Param("detailQuery") MemberMerchantDetailQuery memberMerchantDetailQuery,
                                                 @Param("dataParam") DataParam dataParam, Page page);

    /**
     * 统计机构所有数据
     * @param memberMerchantDetailQuery 统计参数
     * @return 统计列表
     */
    MemberMerchantDetail allSum(MemberMerchantDetailQuery memberMerchantDetailQuery);

    /**
     * 根据条件查询
     * @param memberMerchantDetailQuery 查询参数
     * @return 统计列表
     */
    List<MemberMerchantDetail> queryList(MemberMerchantDetailQuery memberMerchantDetailQuery);

    /**
     * 根据条件查询
     * @param memberMerchantDetailQuery 查询参数
     * @return 统计列表
     */
    List<MemberMerchantDetail> queryListWithChild(MemberMerchantDetailQuery memberMerchantDetailQuery);


    /**
     * 根据条件查询所有
     * @param memberMerchantDetailQuery 查询参数
     * @return 统计列表
     */
    List<MemberMerchantDetail> allQueryList(MemberMerchantDetailQuery memberMerchantDetailQuery);

    /**
     * 查询所有活动、众筹详情的浏览数量
     * @return  浏览数量
     * create by huangwuming
     *  @date 2018/3/5
     */
    List<MemberMerchantDetail> getAllViewNum(@Param(value = "createStart")  String createStart);

}
